/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.raitcon.hibernate.backbean;

import com.raitcon.hibernate.bean.Asignatura;
import com.raitcon.hibernate.db.AsignaturaDB;

import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import org.apache.log4j.Logger;
import org.hibernate.HibernateException;

/**
 *
 * @author Laura
 */
@ManagedBean(name = "asignaturaBean")
@ViewScoped
public class AsignaturaBean implements Serializable {
    protected static Logger log = Logger.getLogger(AsignaturaBean.class); 
  private static  final  long serialVersionUID=-2377612760546575078L;
    private Integer codAsignatura;
    private String descAsignatura;
    private Integer codArea;
    private String nivel;
    private List<Asignatura> lisAsignatura = null;

    /**
     * @return the codAsignatura
     */
    public Integer getCodAsignatura() {
        return codAsignatura;
    }

    /**
     * @param codAsignatura the codAsignatura to set
     */
    public void setCodAsignatura(Integer codAsignatura) {
        this.codAsignatura = codAsignatura;
    }

    /**
     * @return the descAsignatura
     */
    public String getDescAsignatura() {
        return descAsignatura;
    }

    /**
     * @param descAsignatura the descAsignatura to set
     */
    public void setDescAsignatura(String descAsignatura) {
        this.descAsignatura = descAsignatura;
    }

    /**
     * @return the codArea
     */
    public Integer getCodArea() {
        return codArea;
    }

    /**
     * @param codArea the codArea to set
     */
    public void setCodArea(Integer codArea) {
        this.codArea = codArea;
    }

    /**
     * @return the nivel
     */
    public String getNivel() {
        return nivel;
    }

    /**
     * @param nivel the nivel to set
     */
    public void setNivel(String nivel) {
        this.nivel = nivel;
    }

    public List<Asignatura> getLisAsignatura() {
        return lisAsignatura;
    }

    public void setLisAsignatura(List<Asignatura> lisAsignatura) {
        this.lisAsignatura = lisAsignatura;
    }

    
    
    //Metodos para el mantenimiento de la entidad (CRUD)
    public List<Asignatura> listAsignaturaAll() {
        AsignaturaDB asiDB = new AsignaturaDB();
        lisAsignatura = asiDB.getAsignaturaAll();
        
        /*for (Asignatura asignatura : lisAsignatura) {
            System.out.println("cod: " + asignatura.getIdAsignatura());
            System.out.println("cod: " + asignatura.getDescripcion());
        }
        System.out.println("llega?");*/
        return lisAsignatura;
    }
    
    public void agregarAsignatura() throws HibernateException, Exception {
        
        Asignatura asi = new Asignatura();
        AsignaturaDB asiDB = new AsignaturaDB();
        asiDB.insertAsignatura(asi);
    }
    
    public void updateAsignatura() throws HibernateException, Exception {
        Asignatura asi = new Asignatura();
        AsignaturaDB asiDB = new AsignaturaDB();
        asiDB.updateAsignatura(asi, codAsignatura);
    }
    
    public void deleteAsignatura() throws HibernateException, Exception {
        
        Asignatura asi = new Asignatura();
        AsignaturaDB asiDB = new AsignaturaDB();
        asiDB.deleteAsignatura(asi);
    }
}
